﻿// 3427. 大整数的因子.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;
/*

https://www.acwing.com/problem/content/3430/
已知正整数 k满足 2≤k≤9，给定一个长度不超过 30 位的十进制非负整数 c，求所有能整除 c 的 k。

输入格式
输入包含多组测试数据。

每组数据占一行，包含一个非负整数 c。

当输入一行为 c=−1时，输入结束。

输出格式
每组数据输出一行。

按从小到大的顺序，输出所有满足 c的 k
，数字之间用单个空格隔开。如果不存在满足条件的 k，则输出 none。

数据范围
0≤c<1030
,
输入最多包含 100 组数据。

输入样例：
30
72
13
-1
输出样例：
2 3 5 6
2 3 4 6 8 9
none
*/


string str;
vector<int> A;

// A / b = C ... r, A >= 0, b > 0
vector<int> div(vector<int>& A, int b, int& r)
{
    vector<int> C;
    r = 0;
    for (int i = A.size() - 1; i >= 0; i--)
    {
        r = r * 10 + A[i];
        C.push_back(r / b);
        r %= b;
    }
    reverse(C.begin(), C.end());
    while (C.size() > 1 && C.back() == 0) C.pop_back();
    return C;
}

 
void solve() {
    int hasPrint = 0;
    for (int i = 2; i <= 9; i++) {
        int r = -1;
        div(A, i, r);
        if (r == 0) {
            hasPrint = 1;
            cout << i << " ";
        }
    }
    if (hasPrint == 0) {
        cout << "none";
    }
    cout << endl;
}


int main()
{
	while (cin >> str) {
		if (str == "-1") break;
        A.clear();
		for (int i = 0; i <str.size() ; i++) {
			A.push_back(str[i] - '0');
		}
        reverse(A.begin(), A.end());
		solve();
	}

	return 0;
}

 